/* Basic situation room  - Shaggy */
#include <situations.h>
#include "defs.h"

inherit OUTSIDE_OBJ;

void setup() {
    /* The "commented functions" and "keywords" properties are specific for 
     * rooms in the learning domain and is used to make it possible to search
     * for subjects. 
     * See /d/learning/handlers/search.c for the way this is done.
     */
    add_property( "commented functions", 
      ({  }) );
    add_property( "keywords", 
      ({ "situation" }) );

    set_short("Situation with a background state example room");
    set_light(100);
    set_long("This is a situations example that is automated "
      "and makes use of a background situation.  "
      "This means that when the automated manager has not "
      "fired up the labelled automated situations you specified "
      "there is another situation that goes by default the rest "
      "of the time.  It is marked in the list by having -1 "
      "for its duration.  "
      "Please more here to see how it is done.\n"
      "%^CYAN%^Functions shown:%^RESET%^\n"
      "%^YELLOW%^add_situation,  automate_situation.%^RESET%^\n");

    add_exit("back", SIT+ "sitroom4","path");
    add_exit("exit", ROOMSCH+"start","path");

    /* This is the background for the tramp */
    add_situation( "tramp_sleeping", 
      new(class situation,
        chats: ({"The tramp snores." }),
        chat_rate: ({ 60,120 }),
        extra_look: "There is a tramp sleeping here.",
        add_items: ({ ({ "tramp", 
            "There is dusty and fairly dirty tramp curled up and sleeping "
            "at one side of the road."   }) })
      )
    );

    /* This is the tramp awake */
    add_situation( "tramp_awake", 
      new(class situation,
        start_mess: "The tramp leaps to his feet, instantly alert.",
        chats: ({"The tramp produces some brightly coloured balls and juggles "
          "them.",
          "The tramp does a handstand.",
          "The tramp leaps into the air and touches his toes.",
          "The tramp does a little dance.",
          "Dust billows from the frenetic tramp's clothes."
        }),
        chat_rate: ({ 20,30 }),
        extra_look: "There is a tramp bouncing around here.",
        add_items: ({ ({ "tramp", 
            "The dusty tramp is bright eyed and very awake."  }) }),
        end_mess: "The tramp flops to the ground and slowly curls into a ball."
      )
    );

    /* This makes the "tramp_awake' situation above occur automatically and 
       randomly through the day.  WHEN_ANY_TIME specifies that it can happen
       at any time of day.   more /include/situations.h to get the list
       of possible times of day filters.  300 is the chance out of 1000
       that the situation is started every 61 seconds.  The "tramp_sleeping"
       is not part of the set because it has -1 for a duration.  It 
       occurs whenever "tramp_awake" is off.  */

    automate_situation( ({ "tramp_sleeping", "tramp_awake" }), 
      ({ -1, 61 }) , WHEN_ANY_TIME, 300 );

} /* setup() */

